// Radius.h : Declaration of the CRadius

#ifndef __RADIUS_H_
#define __RADIUS_H_

#include "resource.h"       // main symbols

/////////////////////////////////////////////////////////////////////////////
// CRadius
class ATL_NO_VTABLE CRadius : 
	public CComObjectRootEx<CComSingleThreadModel>,
	public CComCoClass<CRadius, &CLSID_Radius>,
	public ISupportErrorInfo,
	public IConnectionPointContainerImpl<CRadius>,
	public IDispatchImpl<IRadius, &IID_IRadius, &LIBID_ACTIVCARDLib>
{
public:
	CRadius()
	{
	}

DECLARE_REGISTRY_RESOURCEID(IDR_RADIUS)

DECLARE_PROTECT_FINAL_CONSTRUCT()

BEGIN_COM_MAP(CRadius)
	COM_INTERFACE_ENTRY(IRadius)
	COM_INTERFACE_ENTRY(IDispatch)
	COM_INTERFACE_ENTRY(ISupportErrorInfo)
	COM_INTERFACE_ENTRY(IConnectionPointContainer)
END_COM_MAP()
BEGIN_CONNECTION_POINT_MAP(CRadius)
END_CONNECTION_POINT_MAP()


// ISupportsErrorInfo
	STDMETHOD(InterfaceSupportsErrorInfo)(REFIID riid);

// IRadius
public:
	STDMETHOD(get_RadiusPort)(/*[out, retval]*/ BYTE *pVal);
	STDMETHOD(put_RadiusPort)(/*[in]*/ BYTE newVal);
	STDMETHOD(SetRadiusClients)(/*[in]*/BSTR bstrRadiusClients);
	STDMETHOD(GetRadiusClients)(/*[in]*/unsigned long ulFirstClientNo,/*[in]*/unsigned long ulGetClientsCount,/*[out,retval]*/BSTR * pbstrClients);
	STDMETHOD(GetRadiusClientsCount)(/*[out,retval]*/unsigned long * plRadiusClientsCount);
};

#endif //__RADIUS_H_
